var ConfigurationTable = cc.Class({
    extends: cc.Component,

    properties: ()=>({
        game: {
            default: null,
            type:require("Game")
        },
        // 分隔合并后的met数据
        metArrPer:  {
            default: [],
            type: ["String"]
        },
        // 分隔合并后的mst数据
        mstArrPer:  {
            default: [],
            type: ["String"]
        },
        // 分隔合并后的part关卡难度数据
        partArrPer: {
            default: [],
            type: ["String"]
        },
        // 未调整的met数据
        metArr: {
            default: [],
            type: ["String"]
        },
        // 怪物数据信息
        mstArr: {
            default: [],
            type: ["String"]
        },
        // 未调整的part关卡难度数据
        partArr: {
            default: [],
            type: ["String"]
        },
        levelNum:0,
        //------------------------------------
        // 未调整的pass关卡难度数据
        passArr: {
            default: [],
            type: ["String"]
        },
    }),
    onLoad: function() {

    },
    // 本地导入配置表 转换
    init: function() {
        let self = this;
        // cc.loader.loadRes('dataFile/part', function(err, data) {
        //     if(err) {
        //         cc.log("错误1", err);
        //     }else {
        //         let list1 = data;
        //         for(var i = 0; i < list1.json.length; i++) {
        //             var arr = list1.json[i];
        //             self.partArr.push(arr);
        //         };
        //         cc.log(self.partArr, "数据1");
        //     }
        // });
        // cc.loader.loadRes('dataFile/bout', function(err, data) {
        //     if(err) {
        //         cc.log("错误2", err);
        //     }else {
        //         let list2 = data;
        //         for(var i = 0; i < list2.json.length; i++) {
        //             var arr = list2.json[i];
        //             self.metArr.push(arr);
        //         };
        //         cc.log(self.metArr, "数据2");
        //     }
        // });
        // cc.loader.loadRes('dataFile/mst', function(err, data) {
        //     if(err) {
        //         cc.log("错误3", err);
        //     }else {
        //         let list3 = data;
        //         for(var i = 0; i < list3.json.length; i++) {
        //             var arr = list3.json[i];
        //             self.mstArr.push(arr);
        //         }
        //         cc.log(self.mstArr, "数据3");
        //     }
        // });
        //----------------------------------------------------------------------
        cc.loader.loadRes('dataFile/pass', function(err, data) {
            if(err) {
                cc.log("错误1", err);
            }else {
                let list1 = data;
                for(var i = 0; i < list1.json.length; i++) {
                    var arr = list1.json[i];
                    self.passArr.push(arr);
                };
                cc.log(self.passArr, "数据1");
            }
        });
        cc.loader.loadRes('dataFile/bout', function(err, data) {
            if(err) {
                cc.log("错误2", err);
            }else {
                let list2 = data;
                for(var i = 0; i < list2.json.length; i++) {
                    var arr = list2.json[i];
                    self.metArr.push(arr);
                };
                cc.log(self.metArr, "数据2");
            }
        });
        cc.loader.loadRes('dataFile/mst', function(err, data) {
            if(err) {
                cc.log("错误3", err);
            }else {
                let list3 = data;
                for(var i = 0; i < list3.json.length; i++) {
                    var arr = list3.json[i];
                    self.mstArr.push(arr);
                }
                cc.log(self.mstArr, "数据3");
            }
        });
    },
    // 导入配置到game 匹配难度级别
    addConfig: function(val) {
        this.passArrPer = [];
        this.metArrPer = [];
        this.mstArrPer = [];
        switch(val) {
            case 1:
                for(var i = 0; i < this.passArr.length; i++) {
                    if(this.passArr[i].hard == 1) {
                        this.passArrPer.push(this.passArr[i].bars);
                    }
                }
                this.fuzhi();
                break;
            case 2:
                for(var i = 0; i < this.passArr.length; i++) {
                    if(this.passArr[i].hard == 2) {
                        this.passArrPer.push(this.passArr[i].bars);
                    }
                }
                this.fuzhi();
                break;
            case 3:
                for(var i = 0; i < this.passArr.length; i++) {
                    if(this.passArr[i].hard == 3) {
                        if(this.passArr[i].bars != 0) {
                            this.passArrPer.push(this.passArr[i].bars);
                        }
                    }
                }
                this.fuzhi();
                break;
        }
        // 数组降维
        this.game.metArrPer = [].concat.apply([],this.metArrPer);
        this.game.mstArrPer = [].concat.apply([],this.mstArrPer);
        this.ReplaceData();
    },
    // 单排数据导入
    fuzhi: function() {
        switch(this.lunhui) {
            case 0:     // 0
                this.metArrPer.push(this.metArr[0].met.split(','));
                this.mstArrPer.push(this.metArr[0].mst.split(','));
                this.lunhui += 1;
                console.log(this.metArrPer,this.mstArrPer,this.passArrPer,"第一关配置1");
                break;
            case 1:     // 1-12
                for(var a = 0; a < 4; a++) {
                    var aran = Math.ceil(Math.random() * 12); 
                    this.metArrPer.push(this.metArr[aran].met.split(','));
                    this.mstArrPer.push(this.metArr[aran].mst.split(','));
                }
                this.lunhui += 1;
                console.log(this.metArrPer,this.mstArrPer,this.passArrPer,"第一关配置2");
                break;
            case 2:     // 13-42
                for(var a = 0; a < 4; a++) {
                    var aran = Math.ceil(Math.random() * 30 + 12); 
                    this.metArrPer.push(this.metArr[aran].met.split(','));
                    this.mstArrPer.push(this.metArr[aran].mst.split(','));
                }
                this.lunhui += 1;
                console.log(this.metArrPer,this.mstArrPer,this.passArrPer,"第一关配置3");
                break;
            case 3:     // 43-72
                for(var a = 0; a < 4; a++) {
                    var aran = Math.ceil(Math.random() * 30 + 42); 
                    this.metArrPer.push(this.metArr[aran].met.split(','));
                    this.mstArrPer.push(this.metArr[aran].mst.split(','));
                }
                this.lunhui += 1;
                console.log(this.metArrPer,this.mstArrPer,this.passArrPer,"第一关配置4");
                break;
            case 4:     // 73-99
                for(var a = 0; a < 4; a++) {
                    var aran = Math.ceil(Math.random() * 27 + 72);
                    this.metArrPer.push(this.metArr[aran].met.split(','));
                    this.mstArrPer.push(this.metArr[aran].mst.split(','));
                }
                this.lunhui += 1;
                console.log(this.metArrPer,this.mstArrPer,this.passArrPer,"第一关配置5");
                break;
            case 5:     // 100-117
                for(var a = 0; a < 8; a++) {
                    var aran = Math.ceil(Math.random() * 18 + 99);
                    this.metArrPer.push(this.metArr[aran].met.split(','));
                    this.mstArrPer.push(this.metArr[aran].mst.split(','));
                }
                this.lunhui += 1;
                console.log(this.metArrPer,this.mstArrPer,this.passArrPer,"第一关配置6");
                break;
            case 6:     // 118-135
                for(var a = 0; a < 8; a++) {
                    var aran = Math.ceil(Math.random() * 18 + 117);
                    this.metArrPer.push(this.metArr[aran].met.split(','));
                    this.mstArrPer.push(this.metArr[aran].mst.split(','));
                }
                this.lunhui += 1;
                console.log(this.metArrPer,this.mstArrPer,this.passArrPer,"第一关配置7");
                break;
            case 7:     // 136-150
                var aran = Math.ceil(Math.random() * 15 + 135);
                this.metArrPer.push(this.metArr[aran].met.split(','));
                this.mstArrPer.push(this.metArr[aran].mst.split(','));
                this.lunhui = 7;
                console.log(this.metArrPer,this.mstArrPer,this.passArrPer,"第一关配置开始无限循环");
                break;
        }
    },
    // 对应时间匹配
    ReplaceData: function() {
        for(var i = 0; i < this.game.metArrPer.length; i++) {
            switch(this.game.metArrPer[i]) {
                case '0':
                this.game.metArrPer[i] = 0;
                    break;
                case '1':
                this.game.metArrPer[i] = 0.25;
                    break;
                case '2':
                this.game.metArrPer[i] = 0.5;
                    break;
                case '3':
                this.game.metArrPer[i] = 0.75;
                    break;
                case '4':
                this.game.metArrPer[i] = 1;
                    break;
                case '5':
                this.game.metArrPer[i] = 1.25;
                    break;
                case '6':
                this.game.metArrPer[i] = 1.5;
                    break;
                case '7':
                this.game.metArrPer[i] = 1.75;
                    break;
                case '8':
                this.game.metArrPer[i] = 2;
                    break;
                case '9':
                this.game.metArrPer[i] = 2.25;
                    break;
                case '10':
                this.game.metArrPer[i] = 2.5;
                    break;
                case '11':
                this.game.metArrPer[i] = 2.75;
                    break;
                case '12':
                this.game.metArrPer[i] = 3;
                    break;
                case '13':
                this.game.metArrPer[i] = 3.25;
                    break;
                case '14':
                this.game.metArrPer[i] = 3.5;
                    break;
                case '15':
                this.game.metArrPer[i] = 3.75;
                    break;
                case '16':
                this.game.metArrPer[i] = 4;
                    break;
            }
        }
    },
    // 清空配置
    removeConfig: function() {
        this.metArrPer = [];
        this.mstArrPer = [];
        this.game.metArrPer = [];
        this.game.mstArrPer = [];
        this.lunhui = 0;
    }
});
module.exports = ConfigurationTable;
